package cn.westv.scps.service.areaserver;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import cn.westv.scps.domain.AreaSeverEntity;
import cn.westv.scps.utils.Page;
/**
 * 地区服务器信息管理(业务平台信息管理)
 * @author Administrator
 *
 */
public interface IAreaServerService {

	/**
	 * 带条件查询
	 * @param hql
	 * @param entityClass 服务器实体类
	 * @param params
	 * @return
	 */
	public List<AreaSeverEntity> find(String hql, Class<AreaSeverEntity> entityClass, Object[] params);

	/**
	 * 根据id获取服务器
	 * @param entityClass
	 * @param id 服务器id（serverId）
	 * @return
	 */
	public AreaSeverEntity get(Class<AreaSeverEntity> entityClass, Serializable id);

	/**
	 * 分页查询
	 * @param hql
	 * @param page 传递分页参数
	 * @param entityClass
	 * @param params
	 * @return
	 */
	public Page<AreaSeverEntity> findPage(String hql, Page<AreaSeverEntity> page, Class<AreaSeverEntity> entityClass, Object[] params);

	/**
	 * 新增和修改
	 * @param entity
	 */
	public String saveOrUpdate(AreaSeverEntity entity);

	/**
	 * 保存（添加）
	 * @param entity
	 */
	public String save(AreaSeverEntity entity);

	/**
	 * 更新（修改）
	 * @param entity
	 */
	public String update(AreaSeverEntity entity);

	/**
	 * 批量新增和修改
	 * @param entitys
	 */
	public void saveOrUpdateAll(Collection<AreaSeverEntity> entitys);

	/**
	 * 根据id删除单个服务器
	 * @param entityClass
	 * @param id 服务器id（serverId）
	 */
	public String deleteById(Class<AreaSeverEntity> entityClass, Serializable id);

	/**
	 * 批量删除多个服务器
	 * @param entityClass
	 * @param ids 
	 */
	public void delete(Class<AreaSeverEntity> entityClass, Serializable[] ids);

	/**
	 * 根据SQL语句查询
	 * @param SQL
	 * @param params
	 * @param entityClass
	 * @return
	 */
	public List<AreaSeverEntity> querySQL(String SQL, Object[] params, Class<AreaSeverEntity> entityClass);
	
	/**
	 * 根据areaCode模糊查询
	 * @param areaCode
	 * @return
	 */
	public AreaSeverEntity findByAreaCode(String areaCode);
	
}
